package com.xhb.campusservices.pojo;

import com.baomidou.mybatisplus.annotation.*;

import java.io.Serializable;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.xhb.campusservices.enums.AuditState;
import com.xhb.campusservices.enums.TaskState;
import lombok.Data;


import javax.validation.Valid;
import javax.validation.constraints.*;

/**
 * @NotEmpty 用在集合类上面
 * @NotBlank 用在String上面
 * @NotNull 用在基本类型上
 *
 * @TableName 任务表
 */
@TableName(value ="task")
@Data
public class Task implements Serializable {
    /**
     * 任务id
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 类型id
     */
    @NotNull(message = "任务类型不能为空")
    private Integer tasktypeid;

    /**
     * 任务主题
     */
    @NotBlank(message = "任务主题不能为空")
    private String theme;

    /**
     * 任务酬劳
     */
    @NotNull(message = "任务酬劳不能为空")
    @Max(value = 1000,message = "最大值不能超过1000")
    private Double taskreward;

    /**
     * 发布人ID
     */
    private Long userid;

    /**
     * 任务状态
     * 任务状态为0时是 已发布，为1时是 未发布，为2时是 已被接单，为3时是 已删除
     */
    private TaskState taskstate;

    /**
     * 审核状态
     * 审核状态为0时是 已通过，为1时是 未审核 默认为1
     */
    private AuditState auditstate;

    /**
     * 发布时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date releasetime;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}